package com.zx.www.volunteersystem.mapper;

import com.zx.www.volunteersystem.pojo.Notice;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface NoticeMapper {

    /**
     * 插入新的公告
     * @param notice 公告对象
     * @return 影响的行数
     */
    int insertNotice(Notice notice);

    /**
     * 根据ID查询公告
     * @param noticeId 公告ID
     * @return 公告对象
     */
    Notice selectNoticeById(Integer noticeId);

    /**
     * 查询所有公告，按发布时间倒序排列
     * @return 公告列表
     */
    List<Notice> selectAllNotices();

    /**
     * 查询置顶公告
     * @return 置顶公告列表
     */
    List<Notice> selectTopNotices();

    /**
     * 更新公告
     * @param notice 公告对象
     * @return 影响的行数
     */
    int updateNotice(Notice notice);

    /**
     * 删除公告
     * @param noticeId 公告ID
     * @return 影响的行数
     */
    int deleteNotice(Integer noticeId);

    /**
     * 根据发布人ID查询公告
     * @param publisherId 发布人ID
     * @return 公告列表
     */
    List<Notice> selectNoticesByPublisherId(Integer publisherId);
}
